/*  This file is part of -_-.

    -_- is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    -_- is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with -_-.  If not, see <http://www.gnu.org/licenses/>.

    Copyright 2012-2013 Oliver Katz */

#include "codeserver.h"
#include <gtest/gtest.h>

extern "C"
{
    int inc(int x)
    {
        return x+1;
    }
}

using namespace sleepyface;
using namespace sleepyface::vm;
using namespace sleepyface::opal;

TEST(codeServer, server)
{
    VM vm = VM();
    vm.setOptimizationLevel(1);
    CodeServer cs = CodeServer();
    vm.linkExternal(cs.compilePrototype(cs.parseAST("decl int inc (int x)", "-preamble-"), "-preamble-"), (void *)&inc);
    cs.cfg("debug-compilation", "1");
    cs.shell(vm);
}

int main(int argc, char *argv[])
{
	::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}